/**
 * 83. 删除排序链表中的重复元素
 *
 * 【简单】
 *
 * 给定一个已排序的链表的头 head ， 删除所有重复的元素，使每个元素只出现一次 。返回 已排序的链表 。
 *
 * 示例 1：
 * 【https://assets.leetcode.com/uploads/2021/01/04/list1.jpg】
 * 输入：head = [1,1,2]
 * 输出：[1,2]
 *
 * 示例 2：
 * 【https://assets.leetcode.com/uploads/2021/01/04/list2.jpg】
 * 输入：head = [1,1,2,3,3]
 * 输出：[1,2,3]
 */

import { ListNode } from '../utils/list'

function deleteDuplicates(head: ListNode | null): ListNode | null {
	const dummy = new ListNode()
	dummy.next = head
	let p = head

	while (p && p.next) {
		const val = p.next.val
		if (p.val === val) {
			p.next = p.next.next
		} else {
			p = p.next
		}
	}

	return dummy.next
}
